const axios = require('axios');

// 配置
const BASE_URL = 'http://localhost:3000/api';

// 测试免费章节的videoUrl返回逻辑
async function testFreeChaptersVideoUrl() {
  try {
    console.log('🚀 开始测试免费章节的videoUrl返回逻辑...\n');

    const shortsId = 1;

    // 1. 测试未登录用户访问短剧详情
    console.log('1️⃣ 测试未登录用户访问短剧详情...');
    try {
      const detailResponse = await axios.get(
        `${BASE_URL}/shorts/${shortsId}`
        // 不传Authorization头，模拟未登录状态
      );
      
      console.log('✅ 获取短剧详情成功');
      const shortData = detailResponse.data;
      console.log(`📺 短剧标题: ${shortData.title}`);
      console.log(`📖 章节数量: ${shortData.chapters.length}`);
      
      // 分析每个章节的videoUrl返回情况
      console.log(`📊 章节数量: ${shortData.chapters.length} (限制为前2个章节)`);
      shortData.chapters.forEach((chapter, index) => {
        const hasVideoUrl = 'videoUrl' in chapter;
        const isFree = chapter.points === 0;
        const status = hasVideoUrl ? '✅ 有videoUrl' : '❌ 无videoUrl';
        const freeStatus = isFree ? '💰 免费章节' : '💎 付费章节';
        
        console.log(`   章节${index + 1}: ${chapter.title}`);
        console.log(`     积分: ${chapter.points} ${freeStatus}`);
        console.log(`     videoUrl: ${hasVideoUrl ? '存在' : '不存在'} ${status}`);
        
        if (hasVideoUrl) {
          console.log(`     视频URL: ${chapter.videoUrl || 'null'}`);
        }
        console.log('');
      });
      
    } catch (error) {
      console.log('❌ 获取短剧详情失败:', error.response?.data?.message || error.message);
      return;
    }

    console.log('─'.repeat(50));

    // 2. 测试未登录用户访问随机短剧
    console.log('2️⃣ 测试未登录用户访问随机短剧...');
    try {
      const randomResponse = await axios.get(
        `${BASE_URL}/shorts/random?count=2`
        // 不传Authorization头，模拟未登录状态
      );
      
      console.log('✅ 获取随机短剧成功');
      const randomData = randomResponse.data;
      
      randomData.forEach((short, shortIndex) => {
        console.log(`\n短剧${shortIndex + 1}: ${short.title}`);
        console.log(`章节数量: ${short.chapters.length}`);
        
        console.log(`  章节数量: ${short.chapters.length} (限制为前2个章节)`);
        short.chapters.forEach((chapter, chapterIndex) => {
          const hasVideoUrl = 'videoUrl' in chapter;
          const isFree = chapter.points === 0;
          const status = hasVideoUrl ? '✅ 有videoUrl' : '❌ 无videoUrl';
          const freeStatus = isFree ? '💰 免费章节' : '💎 付费章节';
          
          console.log(`  章节${chapterIndex + 1}: ${chapter.title}`);
          console.log(`    积分: ${chapter.points} ${freeStatus}`);
          console.log(`    videoUrl: ${hasVideoUrl ? '存在' : '不存在'} ${status}`);
          
          if (hasVideoUrl) {
            console.log(`    视频URL: ${chapter.videoUrl || 'null'}`);
          }
        });
      });
      
    } catch (error) {
      console.log('❌ 获取随机短剧失败:', error.response?.data?.message || error.message);
    }

    console.log('\n' + '─'.repeat(50));

    // 3. 测试登录用户访问短剧详情（对比）
    console.log('3️⃣ 测试登录用户访问短剧详情（对比）...');
    console.log('⚠️  请先设置有效的JWT token');
    console.log('   在脚本中修改 JWT_TOKEN 变量的值\n');
    
    const JWT_TOKEN = 'your_jwt_token_here'; // 替换为实际的JWT token
    
    if (JWT_TOKEN !== 'your_jwt_token_here') {
      const headers = {
        'Authorization': `Bearer ${JWT_TOKEN}`,
        'Content-Type': 'application/json'
      };
      
      try {
        const detailResponse2 = await axios.get(
          `${BASE_URL}/shorts/${shortsId}`,
          { headers }
        );
        
        console.log('✅ 登录用户获取短剧详情成功');
        const shortData2 = detailResponse2.data;
        
        // 分析登录用户的章节videoUrl返回情况
        console.log(`📊 章节数量: ${shortData2.chapters.length} (限制为前2个章节)`);
        shortData2.chapters.forEach((chapter, index) => {
          const hasVideoUrl = 'videoUrl' in chapter;
          const isFree = chapter.points === 0;
          const status = hasVideoUrl ? '✅ 有videoUrl' : '❌ 无videoUrl';
          const freeStatus = isFree ? '💰 免费章节' : '💎 付费章节';
          
          console.log(`   章节${index + 1}: ${chapter.title}`);
          console.log(`     积分: ${chapter.points} ${freeStatus}`);
          console.log(`     videoUrl: ${hasVideoUrl ? '存在' : '不存在'} ${status}`);
          
          if (hasVideoUrl) {
            console.log(`     视频URL: ${chapter.videoUrl || 'null'}`);
          }
          console.log('');
        });
        
      } catch (error) {
        console.log('❌ 登录用户获取短剧详情失败:', error.response?.data?.message || error.message);
      }
    }

    console.log('\n✨ 免费章节videoUrl返回逻辑测试完成！');
    console.log('\n💡 测试要点:');
    console.log('   - 未登录用户访问免费章节（积分为0）时，应该返回videoUrl');
    console.log('   - 未登录用户访问付费章节时，不返回videoUrl');
    console.log('   - 登录用户访问任何章节时，都不返回videoUrl（安全考虑）');
    console.log('   - 短剧详情和随机短剧接口都遵循相同的逻辑');
    console.log('   - 每个短剧只返回前2个章节信息');

  } catch (error) {
    console.error('❌ 测试过程中发生错误:', error.message);
  }
}

// 运行测试
testFreeChaptersVideoUrl().catch(console.error); 